#include <bits/stdc++.h>
using namespace std;
const int maxn = 2e5 + 1;
int t, n, a[maxn], b[maxn], f[maxn];
vector<int> ans;
int main()
{
scanf("%d", &t);
while (t--)
{
scanf("%d", &n);
for (int i = 1; i <= n; i++) scanf("%d", &a[i]);
for (int i = 1; i <= n; i++) scanf("%d", &b[i]);
memset(f, 0, sizeof(int)*(n + 1));
for (int i = 1; i <= n; i++) if (a[i]>b[i]) f[b[i]]++, f[a[i]]--;
for (int i = 1; i <= n; i++) f[i] += f[i - 1];
ans.clear();
for (int i = 1; i <= n; i++)
{
bool ok = true;
for (int j = i; j <= n; j += i)
{
if (f[j] > 0) ok = false;
}
if (ok) ans.push_back(i);
}
printf("%d\n", (int)ans.size());
for (int i = 0; i < ans.size(); i++)
printf("%d ", ans[i]);
printf("\n");
}
return 0;
}
136. Single Number | 169. Majority Element |
119. Pascal's Triangle II | 409. Longest Palindrome |
1574A - Regular Bracket Sequences | 1574B - Combinatorics Homework |
1567A - Domino Disaster | 1593A - Elections |
1607A - Linear Keyboard | EQUALCOIN Equal Coins |
XOREQN Xor Equation | MAKEPAL Weird Palindrome Making |
HILLSEQ Hill Sequence | MAXBRIDGE Maximise the bridges |
WLDRPL Wildcard Replacement | 1221. Split a String in Balanced Strings |
1002. Find Common Characters | 1602A - Two Subsequences |
1555A - PizzaForces | 1607B - Odd Grasshopper |
1084A - The Fair Nut and Elevator | 1440B - Sum of Medians |
1032A - Kitchen Utensils | 1501B - Napoleon Cake |
1584B - Coloring Rectangles | 1562B - Scenes From a Memory |
1521A - Nastia and Nearly Good Numbers | 208. Implement Trie |
1605B - Reverse Sort | 1607C - Minimum Extraction |